package day03;
//逻辑运算符的演示
public class OperDemo03 {
    public static void main(String[] args) {
        //3) 逻辑运算符: &&, ||, !
        int a=5, b=10, c=5;
        // 逻辑与
        /*
        第一遍
        boolean b1 = b>=a && b<=c;
        System.out.println(b1);  //ture && false =false
        System.out.println(b<=c && b>a); // false && ture =false
        System.out.println(a==b && c>b); // false && false =false
        System.out.println(b!=c && a<b); // true && true =true

        int age =40;
        System.out.println(age>=18 && age<=50); //年龄在18~50之间, ture && ture =ture
        int score =86;
        System.out.println(score>=0 && score<=100);//成绩在0~100之间, ture && ture =ture
        //注: Java中需求是"什么什么之间", 则用逻辑与
        */
        //第二遍:
        boolean b1 = b>=a && b<=c;
        System.out.println(b1); //ture && false =false
        System.out.println(b<=c && b>a); //false && true =false
        System.out.println(a==b &&  c<b); // false && false =false
        System.out.println(b!=c && a>b); //true && true =true

        int age = 40;
        System.out.println(age>=18 && age<=50); // 年龄在18~50之间,
        int score = 86;
        System.out.println(score>=0 && score<=100); //成绩在0~100之间


        // 逻辑或
        System.out.println(b>=a || b<c); // true || false =true
        System.out.println(b<=c || b>a); // false || true =true
        System.out.println(b!=c || a<b); // true || false =true
        System.out.println(a==b || b<c); // false || false =false
        score =90;
        System.out.println(score<0 || score>100); //成绩不合法验证(不在0到100之间)
        //                 false  ||  false =false

        // 逻辑非
        //boolean b2 = !a<b; //编译报错, 非的优先级高, 先算非a在计算关系, 而a是变量, 非只能用于关系结果ture 或 false
        boolean b2 = !(a<b);
        System.out.println(b2); //!true=false
        System.out.println(!(a>b)); //!false=ture

        // 逻辑与短路
        boolean b3 = a<b && c++>2;
        System.out.println(b3); // false
        System.out.println(c); // c=5, 发生短路c++不执行自增
        // 逻辑或短路
        boolean b4 = a<b || c++>2;
        System.out.println(b4); // true
        System.out.println(c); // c=5, 发生短路c++不执行自增
    }
}
